package com.itheima.methodreference;

import java.util.Arrays;
import java.util.Comparator;

public class Demo3 {

    public static void main(String[] args) {

        //特定类型的方法引用
        //格式：类型名称::方法名

        //需求：有一个字符串数组，里面有一些英文人名，要求按名字的首字母升序排序
        String[] names = {"Tom", "Jerry", "mike", "jack", "Rose", "Lucy"};

        //Arrays.sort(names);     //按首字母的编号升序排序

        //要求：忽略字母的大小写升序排序
        /*Arrays.sort(names, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {

                return o1.compareToIgnoreCase(o2);
            }
        });*/

        //Arrays.sort(names, (o1, o2) -> o1.compareToIgnoreCase(o2));

        //如果这个Lambda表达式里只是调用一个特定类型的实例方法，并且前面参数列表中第一个参数是作为方法的主调，
        //后面的所有其他参数是作为该实例方法的入参，则此时就可以使用特定类型的方法引用

        Arrays.sort(names, String::compareToIgnoreCase);

        System.out.println(Arrays.toString(names));
    }
}
